#ifndef __CONF_H__
#define __CONF_H__

#include "iniparser.h"
#include "zlog.h"
#include "userLog.h"

/*****************************************************************************
 *  结构体描述：该结构体读取配置文件network.ini里的配置，具体意义参考配置文件
 ****************************************************************************/
struct conf_struct{
    int src_port;
    int dest_port;
    int serv_init_port;
    const char *src_ip;
    const char *dest_ip;
    const char *serv_init_ip;
    const char *ftp_path;
};

/*****************************************************************************
 * 定义空参数空返回的函数指针类型
 ****************************************************************************/
typedef void (*conf_cb_fn)();

/*****************************************************************************
 函数描述  :  读取相应的配置文件，并且执行回调函数cb
 输入参数  :  
             cont_path: const char *，配置文件路径
             cb: 读取完配置文件后的回调函数
 返回值    :  无 
*****************************************************************************/
void get_network_config(const char *cont_path, conf_cb_fn cb);

/*****************************************************************************
 函数描述  :  获取配置文件里相应键的值（int型）
 输入参数  :  
             key: const char *，需要获取配置的键
             notfound: int，如果未找到该键，则用notfound作为返回值
 返回值    :  返回值为notfound 
*****************************************************************************/
int get_conf_int(const char *key, int notfound);

/*****************************************************************************
 函数描述  :  获取配置文件里相应键的值（char *型）
 输入参数  :  
             key: const char *，需要获取配置的键
             def: char*，如果未找到该键，则用def作为返回值
 返回值    :  返回值为notfound 
*****************************************************************************/
const char* get_conf_string(const char *key, char* def);

/*****************************************************************************
 函数描述  :  读取完配置文件network.ini后的回调函数
 输入参数  :  
              无
 返回值    :  无 
*****************************************************************************/
void conf_cb();

/*****************************************************************************
 函数描述  :  释放读取配置文档所使用的所有资源
 输入参数  :  
             无
 返回值    :  无 
*****************************************************************************/
void free_network_conf();

#endif // !__CONF_H__